1. Field Of The Invention
The present invention pertains to a method and apparatus for extracting and processing information from a one or two dimensional array. More particularly, the invention pertains to methods and apparatus for performing neighborhood operations in a one or two dimensional array.
2. The prior Art
Processing of information in a one or two dimensional array, is well-known. There is an ongoing interest in the development of information processing relating to large numbers of transducing or sensing elements. Such elements include visible light, sound input, other sensory input, or even other patterns of signals. There is much current interest in such processing as applied to simulating neural structures such as neural networks.
Many of these applications, such as pattern recognition, sound recognition, and other applications, involve the processing of less than all of the information from a one or two dimensional array. In such instances, the recognition process involves a significant number of "neighborhood operations", i.e., operations which involve the processing of information from one portion of an array. More generally, information processing from an array may involve processing a limited number of co-operands from selected locations in the array.
While such applications are widely varying, a simple example is that of optical pattern recognition in a silicon retina circuit. In the retina example, a two dimensional array of phototransducers produces an electrical current or voltage monotonically related to the light impinging upon the array. The raw data, representing light levels and/or colors at various positions in the array, may be processed in order for some sort of "perception" to take place. Conceptually the simplest method for processing such information would be to integrate the processing circuitry into the array. It is apparent, however, that such a scheme results in an array circuit layout of such complexity that it may not be efficiently realizable as an integrated circuit. Alternatively, the array information could be scanned out into temporary memory storage and then processed, but such schemes utilize substantial amounts of memory and processing time.
In co-pending application Ser. No. 230,459, now abandoned an m by n processing plane is successively scanned by rows. The transducer output information from each row is presented on column lines. The analog data resulting from a fixed number of successive scans are temporarily held in a multi-stage analog shift register. The computing array is configured to perform the neighborhood operations or other limited co-operand operations on the shifted data. The computing array examines information from a slice made up of selected numbers of successive rows of the entire array performs the operations on that portion, and provides a series of output signals representative of the result. The computing array is pipelined; information from a new row is shifted into the computing array, causing the oldest information from the last row in the pipeline row to be lost. In such an arrangement, each of the stored values is copied many times, leading to an inevitable loss of accuracy. The operation is then performed on the new slice. This sequence is repeated until all representative slices of the total array have had the neighborhood operations performed on them. While this arrangement has been shown to represent an improvement over other prior art arrangements, the analog shifting process introduces errors which tend to accumulate with the number of analog shifting operations which are performed.
There is thus a continuing need for improved methods and apparatus for performing neighborhood and other operations on a limited number of co-operands in a multi-dimensional array which do not involve inordinate numbers of hardware components and which do not consume an inordinate amount of processing time.